Toward a Formal Semantic Framework for Deterministic Parallel Programming
نویسندگان
چکیده
Deterministic parallelism has become an increasingly attractive concept: a deterministic parallel program may be easier to construct, debug, understand, and maintain. However, there exist many different definitions of “determinism” for parallel programming. Many existing definitions have not yet been fully formalized, and the relationships among these definitions are still unclear. We argue that formalism is needed, and that history-based semantics—as used, for example, to define the Java and C++ memory models—provides a useful lens through which to view the notion of determinism. As a first step, we suggest several historybased definitions of determinism. We discuss some of their comparative advantages, prove containment relationships among them, and identify programming idioms that ensure them. We also propose directions for future work.
منابع مشابه
Capacity Development Programming of Bioethanol Fuel Refineries in Iran
The purpose of this paper is design a model for the capacity development of bioethanol refineries in Iran. Due to the variable weather condition, there is the uncertainty in the amount of raw materials, thus we suggest a deterministic programming model Based on probabilities for capacity development. The deterministic linear programming model is represented a signal period planning framework to...
متن کاملReasoning about Graph Programs
GP 2 is a non-deterministic programming language for computing by graph transformation. One of the design goals for GP 2 is syntactic and semantic simplicity, to facilitate formal reasoning about programs. In this paper, we demonstrate with four case studies how programmers can prove termination and partial correctness of their solutions. We argue that GP 2’s graph transformation rules, togethe...
متن کاملRelating two semantic descriptions of functional logic programs
A distinctive feature of modern functional logic languages like Toy or Curry is the possibility of programming non-strict and non-deterministic functions with calltime choice semantics. For almost ten years the CRWL framework [6,7] has been the only formal setting covering all these semantic aspects. But recently [1] an alternative proposal has appeared, focusing more on operational aspects. In...
متن کاملA Semantic Framework for Scheduling Parallel Programs
Declarative parallel programs offer deterministic results, allowing the language implementation to schedule parallel tasks in any order. However, program performance hinges crucially on the way that these tasks are scheduled. In this work, we use formal language semantics to express different scheduling policies. These semantics enable us to compare different policies and to understand their ef...
متن کاملSkeleton-based parallel programming: Functional and parallel semantics in a single shot
Different skeleton based parallel programming systems have been developed in past years. The main goal of these programming environments is to provide programmers with handy, effective ways of writing parallel applications. In particular, skeleton based parallel programming environments automatically deal with most of the difficult, cumbersome programming problems that must be usually handled b...
متن کامل